﻿<UserControl x:Class="Microsoft.Windows.Controls.RichTextBoxFormatBar"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:extToolkit="clr-namespace:Microsoft.Windows.Controls"
             xmlns:coreConverters="clr-namespace:Microsoft.Windows.Controls.Core.Converters"
             Background="Transparent"
             IsTabStop="False"
             x:Name="_window">
    <UserControl.Effect>
        <DropShadowEffect BlurRadius="5" Opacity=".25" />
    </UserControl.Effect>

    <UserControl.Resources>

        <coreConverters:ColorToSolidColorBrushConverter x:Key="ColorToSolidColorBrushConverter" />

        <Style TargetType="{x:Type Separator}" BasedOn="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}"/>

        <ControlTemplate x:Key="ThumbControlTemplate" TargetType="{x:Type Thumb}">
            <Border Background="Transparent" Cursor="Hand" ToolTip="Click to Drag">
                <StackPanel VerticalAlignment="Center" Width="75">
                    <Line SnapsToDevicePixels="True" Stretch="Fill" StrokeDashArray="1,2" StrokeThickness="1" X1="0" X2="1" Margin=".5" >
                        <Line.Stroke>
                            <SolidColorBrush Color="Gray" />
                        </Line.Stroke>
                    </Line>
                    <Line SnapsToDevicePixels="True" Stretch="Fill" StrokeDashArray="1,2" StrokeThickness="1" X1="0" X2="1" Margin=".5">
                        <Line.Stroke>
                            <SolidColorBrush Color="Gray" />
                        </Line.Stroke>
                    </Line>
                    <Line SnapsToDevicePixels="True" Stretch="Fill" StrokeDashArray="1,2" StrokeThickness="1" X1="0" X2="1" Margin=".5">
                        <Line.Stroke>
                            <SolidColorBrush Color="Gray" />
                        </Line.Stroke>
                    </Line>
                </StackPanel>
            </Border>
        </ControlTemplate>

        <SolidColorBrush x:Key="MouseOverBorderBrush" Color="#FFFFB700" />
        <LinearGradientBrush x:Key="MouseOverBackgroundBrush" StartPoint="0,0" EndPoint="0,1" >
            <GradientStop Offset="0" Color="#FFFEFBF4" />
            <GradientStop Offset="0.19" Color="#FFFDE7CE" />
            <GradientStop Offset="0.39" Color="#FFFDDEB8" />
            <GradientStop Offset="0.39" Color="#FFFFCE6B" />
            <GradientStop Offset="0.79" Color="#FFFFDE9A" />
            <GradientStop Offset="1" Color="#FFFFEBAA" />
        </LinearGradientBrush>

        <SolidColorBrush x:Key="CheckedBorderBrush" Color="#FFC29B29" />
        <LinearGradientBrush x:Key="CheckedBackgroundBrush" StartPoint="0,0" EndPoint="0,1" >
            <GradientStop Offset="0" Color="#FFFFDCA0" />
            <GradientStop Offset="0.18" Color="#FFFFD692" />
            <GradientStop Offset="0.39" Color="#FFFFC45D" />
            <GradientStop Offset="1" Color="#FFFFD178" />
        </LinearGradientBrush>

        <SolidColorBrush x:Key="PressedBorderBrush" Color="#FFC29B29" />
        <LinearGradientBrush x:Key="PressedBackgroundBrush" StartPoint="0,0" EndPoint="0,1" >
            <GradientStop Offset="0" Color="#FFE3C085" />
            <GradientStop Offset="0.19" Color="#FFF4CC89" />
            <GradientStop Offset="0.36" Color="#FFF5C777" />
            <GradientStop Offset="0.36" Color="#FFF5BB56" />
            <GradientStop Offset="0.79" Color="#FFF4CE9A" />
            <GradientStop Offset="1" Color="#FFF3E28D" />
        </LinearGradientBrush>

        <Style x:Key="FormatBarToggleButtonStyle" TargetType="{x:Type ToggleButton}">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderBrush" Value="Transparent"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
            <Setter Property="Height" Value="22" />
            <Setter Property="HorizontalContentAlignment" Value="Center"/>
            <Setter Property="ToolTipService.InitialShowDelay" Value="900"/>
            <Setter Property="ToolTipService.ShowDuration" Value="20000"/>
            <Setter Property="ToolTipService.BetweenShowDelay" Value="0"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ToggleButton}">
                        <Grid SnapsToDevicePixels="True">
                            <Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="2"/>
                            <Border x:Name="MiddleBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="2">
                                <Border x:Name="InnerBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="2" Padding="{TemplateBinding Padding}">
                                    <StackPanel x:Name="StackPanel" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}">
                                        <ContentPresenter x:Name="Content" Content="{TemplateBinding Content}" Margin="1"
                                           RenderOptions.BitmapScalingMode="NearestNeighbor"
                                           VerticalAlignment="Center"
                                           HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" />
                                    </StackPanel>
                                </Border>
                            </Border>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource MouseOverBackgroundBrush}"/>
                                <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource MouseOverBorderBrush}"/>
                                <Setter Property="BorderBrush" TargetName="InnerBorder" Value="#80FFFFFF"/>
                            </Trigger>

                            <Trigger Property="IsEnabled" Value="False">
                                <Setter Property="Opacity" TargetName="Content" Value="0.5"/>
                                <Setter Property="TextElement.Foreground" TargetName="OuterBorder" Value="#FF9E9E9E"/>
                            </Trigger>

                            <Trigger Property="IsChecked" Value="True">
                                <Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource CheckedBackgroundBrush}"/>
                                <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource CheckedBorderBrush}"/>
                                <Setter Property="BorderBrush" TargetName="InnerBorder">
                                    <Setter.Value>
                                        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                                            <GradientStop Color="#FFE7CBAD" Offset="0"/>
                                            <GradientStop Color="#FFF7D7B5" Offset="0.1"/>
                                            <GradientStop Color="#FFFFD38C" Offset="0.36"/>
                                            <GradientStop Color="#FFFFC75A" Offset="0.36"/>
                                            <GradientStop Color="#FFFFEFA5" Offset="1"/>
                                        </LinearGradientBrush>
                                    </Setter.Value>
                                </Setter>
                            </Trigger>

                            <Trigger Property="IsPressed" Value="True">
                                <Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource PressedBackgroundBrush}"/>
                                <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource PressedBorderBrush}"/>
                                <Setter Property="BorderBrush" TargetName="InnerBorder" Value="Transparent"/>
                            </Trigger>

                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="IsChecked" Value="True"/>
                                    <Condition Property="IsMouseOver" Value="True"/>
                                </MultiTrigger.Conditions>
                                <Setter Property="Background" TargetName="MiddleBorder">
                                    <Setter.Value>
                                        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                                            <GradientStop Color="#40FFFEFE" Offset="0"/>
                                            <GradientStop Color="#40FFFEFE" Offset="0.39"/>
                                            <GradientStop Color="#20FFCE68" Offset="0.39"/>
                                            <GradientStop Color="#20FFCE68" Offset="0.69"/>
                                            <GradientStop Color="#10FFFFFF" Offset="1"/>
                                        </LinearGradientBrush>
                                    </Setter.Value>
                                </Setter>
                            </MultiTrigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

        <Style x:Key="FontColorButtonStyle" TargetType="{x:Type ToggleButton}">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderBrush" Value="Transparent"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
            <Setter Property="Height" Value="22" />
            <Setter Property="HorizontalContentAlignment" Value="Center"/>
            <Setter Property="ToolTipService.InitialShowDelay" Value="900"/>
            <Setter Property="ToolTipService.ShowDuration" Value="20000"/>
            <Setter Property="ToolTipService.BetweenShowDelay" Value="0"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ToggleButton}">
                        <Grid SnapsToDevicePixels="True">
                            <Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/>
                            <Border x:Name="MiddleBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="2">
                                <Border x:Name="InnerBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="2" Padding="{TemplateBinding Padding}">
                                    <Grid>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition />
                                        </Grid.ColumnDefinitions>

                                        <Grid>
                                            <Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/FontColorPicker16.png" Width="16" Height="16" />
                                            <Rectangle Grid.Row="1" Height="4" Margin="0,12,0,0"
                                                       Fill="{Binding SelectedColor, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=extToolkit:ColorPicker}, Converter={StaticResource ColorToSolidColorBrushConverter}}" />
                                        </Grid>

                                        <Path Grid.Column="1" Width="7" Height="4" 
                                              Data="M 0,1 C0,1 0,0 0,0 0,0 3,0 3,0 3,0 3,1 3,1 3,1 4,1 4,1 4,1 4,0 4,0 4,0 7,0 7,0 7,0 7,1 7,1 7,1 6,1 6,1 6,1 6,2 6,2 6,2 5,2 5,2 5,2 5,3 5,3 5,3 4,3 4,3 4,3 4,4 4,4 4,4 3,4 3,4 3,4 3,3 3,3 3,3 2,3 2,3 2,3 2,2 2,2 2,2 1,2 1,2 1,2 1,1 1,1 1,1 0,1 0,1 z" Fill="#FF000000"/>
                                    </Grid>
                                </Border>
                            </Border>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource MouseOverBackgroundBrush}"/>
                                <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource MouseOverBorderBrush}"/>
                                <Setter Property="BorderBrush" TargetName="InnerBorder" Value="#80FFFFFF"/>
                            </Trigger>

                            <Trigger Property="IsEnabled" Value="False">
                                <Setter Property="TextElement.Foreground" TargetName="OuterBorder" Value="#FF9E9E9E"/>
                            </Trigger>

                            <Trigger Property="IsChecked" Value="True">
                                <Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource CheckedBackgroundBrush}"/>
                                <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource CheckedBorderBrush}"/>
                                <Setter Property="BorderBrush" TargetName="InnerBorder">
                                    <Setter.Value>
                                        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                                            <GradientStop Color="#FFE7CBAD" Offset="0"/>
                                            <GradientStop Color="#FFF7D7B5" Offset="0.1"/>
                                            <GradientStop Color="#FFFFD38C" Offset="0.36"/>
                                            <GradientStop Color="#FFFFC75A" Offset="0.36"/>
                                            <GradientStop Color="#FFFFEFA5" Offset="1"/>
                                        </LinearGradientBrush>
                                    </Setter.Value>
                                </Setter>
                            </Trigger>

                            <Trigger Property="IsPressed" Value="True">
                                <Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource PressedBackgroundBrush}"/>
                                <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource PressedBorderBrush}"/>
                                <Setter Property="BorderBrush" TargetName="InnerBorder" Value="Transparent"/>
                            </Trigger>

                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="IsChecked" Value="True"/>
                                    <Condition Property="IsMouseOver" Value="True"/>
                                </MultiTrigger.Conditions>
                                <Setter Property="Background" TargetName="MiddleBorder">
                                    <Setter.Value>
                                        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                                            <GradientStop Color="#40FFFEFE" Offset="0"/>
                                            <GradientStop Color="#40FFFEFE" Offset="0.39"/>
                                            <GradientStop Color="#20FFCE68" Offset="0.39"/>
                                            <GradientStop Color="#20FFCE68" Offset="0.69"/>
                                            <GradientStop Color="#10FFFFFF" Offset="1"/>
                                        </LinearGradientBrush>
                                    </Setter.Value>
                                </Setter>
                            </MultiTrigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

        <Style x:Key="FontBackgrounColorButtonStyle" TargetType="{x:Type ToggleButton}">
            <Setter Property="Background" Value="White"/>
            <Setter Property="BorderBrush" Value="Transparent"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
            <Setter Property="Height" Value="22" />
            <Setter Property="HorizontalContentAlignment" Value="Center"/>
            <Setter Property="ToolTipService.InitialShowDelay" Value="900"/>
            <Setter Property="ToolTipService.ShowDuration" Value="20000"/>
            <Setter Property="ToolTipService.BetweenShowDelay" Value="0"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ToggleButton}">
                        <Grid SnapsToDevicePixels="True">
                            <Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/>
                            <Border x:Name="MiddleBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="2">
                                <Border x:Name="InnerBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="2" Padding="{TemplateBinding Padding}">
                                    <Grid>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition />
                                        </Grid.ColumnDefinitions>

                                        <Grid>
                                            <Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/TextHighlightColorPicker16.png" Width="16" Height="16" />
                                            <Rectangle Grid.Row="1" Height="4" Margin="0,12,0,0"
                                                       Fill="{Binding SelectedColor, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=extToolkit:ColorPicker}, Converter={StaticResource ColorToSolidColorBrushConverter}}" />
                                        </Grid>

                                        <Path Grid.Column="1" Width="7" Height="4" 
                                              Data="M 0,1 C0,1 0,0 0,0 0,0 3,0 3,0 3,0 3,1 3,1 3,1 4,1 4,1 4,1 4,0 4,0 4,0 7,0 7,0 7,0 7,1 7,1 7,1 6,1 6,1 6,1 6,2 6,2 6,2 5,2 5,2 5,2 5,3 5,3 5,3 4,3 4,3 4,3 4,4 4,4 4,4 3,4 3,4 3,4 3,3 3,3 3,3 2,3 2,3 2,3 2,2 2,2 2,2 1,2 1,2 1,2 1,1 1,1 1,1 0,1 0,1 z" Fill="#FF000000"/>
                                    </Grid>
                                </Border>
                            </Border>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource MouseOverBackgroundBrush}"/>
                                <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource MouseOverBorderBrush}"/>
                                <Setter Property="BorderBrush" TargetName="InnerBorder" Value="#80FFFFFF"/>
                            </Trigger>

                            <Trigger Property="IsEnabled" Value="False">
                                <Setter Property="TextElement.Foreground" TargetName="OuterBorder" Value="#FF9E9E9E"/>
                            </Trigger>

                            <Trigger Property="IsChecked" Value="True">
                                <Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource CheckedBackgroundBrush}"/>
                                <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource CheckedBorderBrush}"/>
                                <Setter Property="BorderBrush" TargetName="InnerBorder">
                                    <Setter.Value>
                                        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                                            <GradientStop Color="#FFE7CBAD" Offset="0"/>
                                            <GradientStop Color="#FFF7D7B5" Offset="0.1"/>
                                            <GradientStop Color="#FFFFD38C" Offset="0.36"/>
                                            <GradientStop Color="#FFFFC75A" Offset="0.36"/>
                                            <GradientStop Color="#FFFFEFA5" Offset="1"/>
                                        </LinearGradientBrush>
                                    </Setter.Value>
                                </Setter>
                            </Trigger>

                            <Trigger Property="IsPressed" Value="True">
                                <Setter Property="Background" TargetName="OuterBorder" Value="{StaticResource PressedBackgroundBrush}"/>
                                <Setter Property="BorderBrush" TargetName="OuterBorder" Value="{StaticResource PressedBorderBrush}"/>
                                <Setter Property="BorderBrush" TargetName="InnerBorder" Value="Transparent"/>
                            </Trigger>

                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="IsChecked" Value="True"/>
                                    <Condition Property="IsMouseOver" Value="True"/>
                                </MultiTrigger.Conditions>
                                <Setter Property="Background" TargetName="MiddleBorder">
                                    <Setter.Value>
                                        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                                            <GradientStop Color="#40FFFEFE" Offset="0"/>
                                            <GradientStop Color="#40FFFEFE" Offset="0.39"/>
                                            <GradientStop Color="#20FFCE68" Offset="0.39"/>
                                            <GradientStop Color="#20FFCE68" Offset="0.69"/>
                                            <GradientStop Color="#10FFFFFF" Offset="1"/>
                                        </LinearGradientBrush>
                                    </Setter.Value>
                                </Setter>
                            </MultiTrigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

    </UserControl.Resources>

    <Border CornerRadius="3" BorderThickness="1" BorderBrush="Gray" Background="WhiteSmoke">
        <Grid Margin="5,0,5,5">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>

            <Thumb x:Name="_dragWidget" Height="10" 
                   Template="{StaticResource ThumbControlTemplate}"
                   DragDelta="DragWidget_DragDelta"/>

            <StackPanel Grid.Row="1">
                <StackPanel Orientation="Horizontal">
                    <ComboBox x:Name="_cmbFontFamilies" IsEditable="True" Width="100"
                              SelectionChanged="FontFamily_SelectionChanged"
                              ToolTip="Font Family"/>

                    <ComboBox x:Name="_cmbFontSizes" IsEditable="True" Width="43"
                              SelectionChanged="FontSize_SelectionChanged"
                              ToolTip="Font Size"/>

                    <Separator />

                    <ToggleButton x:Name="_btnBullets" Style="{StaticResource FormatBarToggleButtonStyle}"
                                  Command="EditingCommands.ToggleBullets" CommandTarget="{Binding ElementName=_window, Path=Target}"
                                  Click="Bullets_Clicked"
                                  ToolTip="Bullets">
                        <Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/Bullets16.png" />
                    </ToggleButton>

                    <ToggleButton x:Name="_btnNumbers" Style="{StaticResource FormatBarToggleButtonStyle}"
                                  Command="EditingCommands.ToggleNumbering" CommandTarget="{Binding ElementName=_window, Path=Target}"
                                  Click="Numbers_Clicked"
                                  ToolTip="Numbering">
                        <Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/Numbering16.png" />
                    </ToggleButton>

                </StackPanel>

                <StackPanel Orientation="Horizontal" Margin="0,3,0,0">
                    <ToggleButton x:Name="_btnBold" Style="{StaticResource FormatBarToggleButtonStyle}"
                                Command="EditingCommands.ToggleBold" CommandTarget="{Binding ElementName=_window, Path=Target}"
                                  ToolTip="Bold">
                        <Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/Bold16.png" />
                    </ToggleButton>
                    <ToggleButton x:Name="_btnItalic" Style="{StaticResource FormatBarToggleButtonStyle}"
                                  Command="{x:Static EditingCommands.ToggleItalic}" CommandTarget="{Binding ElementName=_window, Path=Target}"
                                  ToolTip="Italic">
                        <Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/Italic16.png" />
                    </ToggleButton>
                    <ToggleButton x:Name="_btnUnderline" Style="{StaticResource FormatBarToggleButtonStyle}"
                                  Command="{x:Static EditingCommands.ToggleUnderline}" CommandTarget="{Binding ElementName=_window, Path=Target}"
                                  ToolTip="Underline">
                        <Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/Underline16.png" />
                    </ToggleButton>

                    <Separator />

                    <RadioButton x:Name="_btnAlignLeft" Style="{StaticResource FormatBarToggleButtonStyle}"
                                 Command="{x:Static EditingCommands.AlignLeft}"  CommandTarget="{Binding ElementName=_window, Path=Target}"
                                 ToolTip="Align Left">
                        <Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/LeftAlign16.png" />
                    </RadioButton>
                    <RadioButton x:Name="_btnAlignCenter" Style="{StaticResource FormatBarToggleButtonStyle}"
                                 Command="{x:Static EditingCommands.AlignCenter}"  CommandTarget="{Binding ElementName=_window, Path=Target}"
                                 ToolTip="Align Center">
                        <Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/CenterAlign16.png" />
                    </RadioButton>
                    <RadioButton x:Name="_btnAlignRight" Style="{StaticResource FormatBarToggleButtonStyle}"
                                 Command="{x:Static EditingCommands.AlignRight}"  CommandTarget="{Binding ElementName=_window, Path=Target}"
                                 ToolTip="Align Right">
                        <Image Source="/WPFToolkit.Extended;component/RichTextBoxFormatBar/Images/RightAlign16.png" />
                    </RadioButton>

                    <Separator />

                    <extToolkit:ColorPicker x:Name="_cmbFontBackgroundColor" BorderThickness="0" 
                                            ButtonStyle="{StaticResource FontBackgrounColorButtonStyle}"
                                            SelectedColorChanged="FontBackgroundColor_SelectedColorChanged"
                                            ToolTip="Text Highlight Color"/>

                    <extToolkit:ColorPicker x:Name="_cmbFontColor" BorderThickness="0" 
                                            ButtonStyle="{StaticResource FontColorButtonStyle}"
                                            SelectedColorChanged="FontColor_SelectedColorChanged"
                                            ToolTip="Font Color"/>

                </StackPanel>

            </StackPanel>
        </Grid>
    </Border>
</UserControl>
